/// 比如颜色微调的方法、以及生成某些颜色的方法等
part of '../basic.dart';

extension Tune on Color {
  /// 将颜色与另一种颜色混合（语法糖）
  /// ratio指的是other所占的比例，介于0-1之间
  Color blend(Color other, double ratio) {
    assert(ratio >= 0 && ratio <= 1);
    return Color.lerp(this, other, ratio)!;
  }

  /// 将当前颜色与黑色做一个lerp，传入的数值为黑色所占比例
  Color darken(double ratio) => blend(COLOR.blackPure, ratio);
  Color lighten(double ratio) => blend(COLOR.whitePure, ratio);
}

/// rgb都相等的灰度颜色，[bright]介于0-255之间
/// 0为黑色，255为白色
Color greyscale(int bright) {
  assert(bright >= 0 && bright <= 255);
  return rgb(bright, bright, bright);
}

Color rgb(int r, int g, int b) => Color.fromRGBO(r, g, b, 1);
